<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>vue</title>
  <script src="./js/vue.js"></script>
</head>

<body>
  <div id="app">

    <input type="text" v-model="phone">
    <input type="text" v-model="user.phone">
    <input type="text" v-model="user.name">
    <span>{{phoneTip}}</span>

  </div>

  <script>

    new Vue({
      el: '#app',
      data: {
        phone: '13252125121',
        user: { phone: '13252125121', name: '张三' },
        phoneTip: ''
      },
      // 侦听器,它依赖项只有一个  -- 触发器
      // 观察data数据源中  phone 属性值的变化,它的值一但改变,则对应处理一些动作
      watch: {
        // 简写
        // 监听对象中某一个属性
        /* 'user.phone'(newValue, oldValue) {
          console.log(newValue, oldValue)
        },
        'user.name'(newValue, oldValue) {
          console.log(newValue, oldValue)
        } */
        // 标准写法
        // phone(n,o){}
        /* phone: {
          handler(n, o) {
            console.log(n, o)
          },
          // 初始化时就执行一次
          immediate: true
        } */

        // 监听一个对象的改变
        user: {
          handler(n, o) {
            console.log(n, o)
          },
          // 深层对比  不建议使用,性能较差
          deep: true
        }

      }
    })
  </script>
</body>

</html>